package com.xindacloud.sms.console.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 *
 * </p>
 *
 * @author czc
 * @since 2019-10-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "用户信息")
@JsonIgnoreProperties(ignoreUnknown = true)
public class SmsUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 序列号，自增
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    @ApiModelProperty(value = "用户ID", name = "userId")
    private Integer userId;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名", name = "username")
    private String username;
    @ApiModelProperty(value = "别名", name = "nickname")
    private String nickname;
    @ApiModelProperty(value = "账号名", name = "accountName")
    private String accountName;
    @ApiModelProperty(value = "姓", name = "firstName")
    private String firstName;
    @ApiModelProperty(value = "名", name = "lastName")
    private String lastName;
    @ApiModelProperty(value = "时区", name = "timeZone")
    private String timeZone;
    @ApiModelProperty(value = "语言", name = "language")
    private String language;
    @ApiModelProperty(value = "显示货币", name = "displayCurrency")
    private String displayCurrency;
    @ApiModelProperty(value = "性别", name = "sex")
    private Integer sex;
    @ApiModelProperty(value = "生日", name = "birthday")
    private String birthday;
    @ApiModelProperty(value = "个人网站", name = "personerWebsite")
    private String personerWebsite;
    @ApiModelProperty(value = "签名", name = "sign")
    private String sign;

    /**
     * 登录密码,MD5加密
     */
    @ApiModelProperty(value = "登录密码,MD5加密", name = "password")
    private String password;

    /**
     * 注册电子邮箱
     */
    @ApiModelProperty(value = "注册电子邮箱", name = "email")
    private String email;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码", name = "mobile")
    private String mobile;

    /**
     * 注册时间
     */
    @ApiModelProperty(value = "注册时间yyyy-MM-dd HH:mm:ss", name = "registerTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime registerTime;

    /**
     * 是否禁用,true为禁用
     */
    @ApiModelProperty(value = "是否禁用", name = "status")
    private Integer status;

    /**
     * 最后登录时间
     */
    @ApiModelProperty(value = "最后登录时间yyyy-MM-dd HH:mm:ss", name = "lastLoginTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastLoginTime;

    /**
     * 账户余额
     */
    @ApiModelProperty(value = "账户余额", name = "balance")
    private Double balance;

    /**
     * 地址
     */
    @ApiModelProperty(value = "地址", name = "address")
    private String address;

    /**
     * 城市
     */
    @ApiModelProperty(value = "城市", name = "city")
    private String city;

    /**
     * 邮编
     */
    @ApiModelProperty(value = "邮编", name = "postCode")
    private Integer postCode;

    /**
     * 国家
     */
    @ApiModelProperty(value = "国家", name = "country")
    private String country;

    /**
     * 上级用户
     */

    @ApiModelProperty(value = "上级用户", name = "parentUserId")
    private Integer parentUserId;

    @ApiModelProperty(value = "申请状态", name = "applyStatus")
    private Integer applyStatus;

    @ApiModelProperty(value = "应用时间yyyy-MM-dd HH:mm:ss", name = "applyTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime applyTime;

    @ApiModelProperty(value = "微信二维码", name = "weixinQrcode")
    private String weixinQrcode;
    @ApiModelProperty(value = "微信二维码是否显示", name = "qrcodeState")
    private Integer qrcodeState;
    @ApiModelProperty(value = "默认发送者ID或者编号", name = "defaultSender")
    private String defaultSender;
    @ApiModelProperty(value = "账号类型", name = "accountType")
    private String accountType;
    @ApiModelProperty(value = "公司", name = "company")
    private String company;
    @ApiModelProperty(value = "公司网址", name = "companySite")
    private String companySite;
    @ApiModelProperty(value = "公司邮箱", name = "companyEmail")
    private String companyEmail;
    @ApiModelProperty(value = "YY平台明文密码", name = "textPassword")
    private String textPassword;

}
